#include "listitembox.h"
#include "ui_listitembox.h"
#include <QDebug>
ListItemBox::ListItemBox(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ListItemBox),
    isLike(false)//默认不喜欢
{
    ui->setupUi(this);
    //关联我喜欢按钮点击信号和槽函数
    connect(ui->likeBtn,&QPushButton::clicked,this,&ListItemBox::onLikeBtnClicked);
}

ListItemBox::~ListItemBox()
{
    //qDebug()<<"ListItemBox被销毁";
    delete ui;
}
//重写鼠标进入事件的事件处理函数
void ListItemBox::enterEvent(QEvent *event)
{
    (void)event;
    //鼠标进入时设置背景色
    setStyleSheet("background-color:#EFEFEF");
}
//重写鼠标离开事件的事件处理函数
void ListItemBox::leaveEvent(QEvent *event)
{
    (void)event;
    //鼠标离开时恢复背景色
    setStyleSheet("");
}
//设置音乐名称MusicName
void ListItemBox::setMusicName(const QString &musicName)
{
    ui->musicNameLabel->setText(musicName);
}
//设置音乐作者MusicSinger
void ListItemBox::setMusicSinger(const QString &musicSinger)
{
    ui->musicSingerLabel->setText(musicSinger);
}
//设置音乐专辑MusicAlbumn
void ListItemBox::setMusicAlbumn(const QString &musicAlbumn)
{
    ui->musicAlbumLabel->setText(musicAlbumn);
}
//设置是否喜欢此Music音乐
void ListItemBox::setLikeMusic(bool isLike)
{
    //接收isLike布尔值
    this->isLike=isLike;
    //根据bool来进行判断，来设置图片
    if(this->isLike==true)
    {
        //喜欢
        ui->likeBtn->setIcon(QIcon(":/images/like_2.png"));
    }
    else
    {
        //不喜欢
        ui->likeBtn->setIcon(QIcon(":/images/like_3.png"));
    }

}
//点击我喜欢按钮的槽函数
/*当点击了我喜欢按钮之后，会进行状态切换
 * 需要修改Music对象中的isLike属性
 * 由于歌曲的状态发生了改变，就需要修改likePage localPage recentPage的歌曲列表
 */
void ListItemBox::onLikeBtnClicked()
{
    //状态切换
    isLike=!isLike;
    //设置是否喜欢此Music音乐，内部会进行图片切换
    setLikeMusic(isLike);

    //现在收藏或者不收藏的状态已经改变，应该通知修改Music对象中的isLike属性
    emit setIsLike(isLike);


}
